package com.ling.pl.autoproject.definition.programme.model;

import com.ling.pl.core.commons.annotation.Dict;
import com.ling.pl.core.commons.annotation.ModelProperty;
import com.ling.pl.core.model.impl.BaseEntity;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

/**
 * Created by bo.wang on 2017/5/13.
 * 开发方案 包含前端方案,后端方案
 * see https://wiki.ling2.cn/index.php/Auto_codeing_工业标准
 */
@MappedSuperclass
public class Project extends BaseEntity {

    /**
     * 所用方案id
     */
    @Column(name = "PROGRAMME_ID", length = 36)
    @ModelProperty(comment = "描述")
    String programmeId;
    /**
     * 开发方案编号
     */
    @Column(name = "CODE", length = 150)
    @ModelProperty(comment = "项目代码")
    String code;

    @Column(name = "NAME", length = 150)
    @ModelProperty(comment = "项目名称")
    String name;

    @Column(name = "DES", length = 250)
    @ModelProperty(comment = "描述")
    String des;
    /**
     * 前端架构方案
     */
    @Column(name = "FORE_ARCHITECTURE", length = 250)
    @ModelProperty(comment = "前端架构方案")
    @Dict(code = "builder.project.foreArchitecture", des = "angular,react,dorado7")
    String foreArchitecture;
    /**
     * 后端架构方案
     */
    @Column(name = "BACK_ARCHITECTURE", length = 250)
    @ModelProperty(comment = "后端架构方案")
    String backArchitecture;

    @Column(name = "PROJECT_VERSION", length = 50)
    @ModelProperty(comment = "系统版本")
    String projectVersion;

    @Column(name = "REMARK", length = 500)
    @ModelProperty(comment = "备注")
    String remark;

    @Column(name = "IS_MYSQL_SUPPORT")
    @ModelProperty(comment = "mysql支持")
    Boolean isMysqlSupport;
    @Column(name = "MYSQL_INSTANCE_ID", length = 36)
    @ModelProperty(comment = "mysql实例")
    String mysqlInstanceId;

    @Column(name = "IS_ORACLE_SUPPORT")
    @ModelProperty(comment = "ORACLE支持")
    Boolean isOracleSupport;
    @Column(name = "ORACLE_INSTANCE_ID", length = 36)
    @ModelProperty(comment = "ORACLE实例")
    String oracleInstanceId;

    @Column(name = "SERVLET_CONTAINER_ID1", length = 36)
    @ModelProperty(comment = "容器id1")
    String servletContainerId1;

    @Column(name = "SERVLET_CONTAINER_ID2", length = 36)
    @ModelProperty(comment = "容器id2")
    String servletContainerId2;

    public String getProgrammeId() {
        return programmeId;
    }

    public void setProgrammeId(String programmeId) {
        this.programmeId = programmeId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public String getForeArchitecture() {
        return foreArchitecture;
    }

    public void setForeArchitecture(String foreArchitecture) {
        this.foreArchitecture = foreArchitecture;
    }

    public String getBackArchitecture() {
        return backArchitecture;
    }

    public void setBackArchitecture(String backArchitecture) {
        this.backArchitecture = backArchitecture;
    }

    public String getProjectVersion() {
        return projectVersion;
    }

    public void setProjectVersion(String projectVersion) {
        this.projectVersion = projectVersion;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Boolean getMysqlSupport() {
        return isMysqlSupport;
    }

    public void setMysqlSupport(Boolean mysqlSupport) {
        isMysqlSupport = mysqlSupport;
    }

    public String getMysqlInstanceId() {
        return mysqlInstanceId;
    }

    public void setMysqlInstanceId(String mysqlInstanceId) {
        this.mysqlInstanceId = mysqlInstanceId;
    }

    public Boolean getOracleSupport() {
        return isOracleSupport;
    }

    public void setOracleSupport(Boolean oracleSupport) {
        isOracleSupport = oracleSupport;
    }

    public String getOracleInstanceId() {
        return oracleInstanceId;
    }

    public void setOracleInstanceId(String oracleInstanceId) {
        this.oracleInstanceId = oracleInstanceId;
    }
}
